SyncML Viewer Update with Autopilot hash decoding

I spent some time to further enhance the SyncML Viewer utility (see here to learn more about the tool). This release (Version 1.4.0) fixes some minor bugs, and added some new features. Three of them are worth mentioning here. So, I’m showing them quickly in this update post. First of all, I have to thank Michael Niehaus again for his Autopilot Hardware Hash decoder which is part of the PowerShell Module AutopilotUtility. I used the logic to provide a Hardware Hash decode functionality within the SyncML Viewer v1.4.0.

You can now select a hardware hash in the protocol stream and decode it via Menu > Actions > Decode Autopilot Hardware Hash or use Ctrl + U

SyncML Viewer - Autopilot Hardware Hash Viewer

Finding related information about received information in the MDM protocol (SyncML) stream is often pattern matching. So I decided to add also a NodeCache Lookup. The SyncML protocol uses a NodeCache to sync everything with the server. During a MDM sync session, this NodeCache is synchronized and the server asks for ChangedNodes on the client. The client will respond with the corresponding ids. These ids can be viewed in the registry (HKLM\SOFTWARE\Microsoft\Provisioning\NodeCache\CSP\Device\MS DM Server\Nodes\<id>) to get more info what was changed after last MDM sync. To use it, follow the same procedure, find the ChancedNodes in the SyncML protocol stream and select a Node number and use Menu > Actions > Lookup NodeCache Entry in Registry or Ctrl + G

SyncML Viewer - Lookup NodeCache Entry in Registry

And as last small extra feature, I added a Hex Viewer. If you like to see any data in hex just use Menu > Actions > View as HEX or Ctrl + T

SyncML Viewer - Hex Viewer

The full change log is here:

  • added Autopilot Hardware Hash decode function (thanks to Michael Niehaus!)
  • added NodeCache Lookup
  • added Hex Viewer
  • added more AutoComplete samples
  • added GridSplitter for SyncML Requests Window
  • added count of total received bytes (tooltip on capturing icon)
  • added Clear Stream confirmation dialog
  • added more Status Codes for Health Attestation (thanks to Tom Plant!)
  • Status Code Tab hidden, use Help to get there
    better use key combination Ctrl + E on selected status code text instead
  • Data Editor renaming’s and behavior switch to non-modal
  • fixed Diagnostics Tab naming’s (AzureAD -> Entra)
  • fixed MDMDiagnostics Bug
  • fixed truncated message indicator threshold
  • fixed WiFi and VPN enumeration now async
  • updated dependencies
  • code maintenance work

I published the update to WinGet and I published the new version to Scoop as well (thx to Olav for teh suggestion) which is another PackageManager for Windows:

WinGet

winget install SyncMLViewer

If there is the previous version 1.3.1 installed run the update command:

winget update SyncMLViewer

Scoop

scoop bucket add extras
scoop install extras/SyncMLViewer

If you want to have some info about the tool have a look at these posts as well:

Download and feedback

I hope these usability enhancements will help research and dig into the MDM stack. If there is feedback leave a comment or open an issue on GitHub.

The project is maintained on GitHub here:
https://github.com/okieselbach/SyncMLViewer

Here a direct link to the zip archived program:
https://github.com/okieselbach/SyncMLViewer/tree/master/SyncMLViewer/dist